home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Gold Medal Software 2
/
Gold Medal Software Volume 2 (Gold Medal) (1994).iso
/
prog
/
asm_0_m.arj
/
JDOS.DOC
< prev
next >
Wrap
Text File
|
1989-03-18
|
14KB
|
385 lines
JDOS Documentation
Richard B. Johnson
PROGRAM EXCHANGE
March 15, 1989
Forward.
JDOS is a terminate and stay resident program (TSR) that
uses VERY LITTLE MEMORY! The resident portion is only about
3 kb.
When installed, JDOS allows the user to activate a copy of
the DOS command-processor by typing ^\ (control-backslash)
while within a program. The command-processor will be acti-
vated for the user if the following conditions are met:
(1) The program in use has not acquired ALL of the
system memory.
(2) The program in use has followed DOS's rules for
memory management.
(3) There is sufficient disk-space on the default drive
to write two files totaling about 700 kb in size. These
files are deleted as soon as JDOS returns to the inter-
rupted program.
Usage:
JDOS <return>
Note:
You should see a signon-message on your screen. If you do
not see this message, your base-board switches or CMOS are
not set properly to define the screen-card that you are us-
ing. In this case, the screen contents will not be restored
after you exit the JDOS window. You might be able to fix
this with the proper DOS "MODE" command in your AUTOEXEC.BAT
file.
If you hit ^\ while at the DOS prompt, the console bell will
sound but nothing else will happen until you execute a tran-
sient program. That program will then be interrupted as soon
as JDOS finds a safe time to interrupt. If you accidentally
interrupt a program, you just wait until the JDOS window ap-
pears then type EXIT to return to your interrupted program.
Depending upon how fast your hard-disk drive operates, it
may take several seconds to activate the JDOS window and
several seconds to get back to your interrupted task. This
may seem like a long time, but once you get to the JDOS
window, you will have MOST of the system memory available
for another application program! Other TSR programs of this
type permanently acquire large amounts of system memory when
installed. They then allow only very small programs to be
activated within the "window". JDOS saves most of the system
memory contents to disk so it can be used for applications
programs.
- 1 -
How it works.
When invoked at the DOS command-line, JDOS installs itself
and leaves about 3 kb resident in memory. JDOS continually
monitors the keyboard, waiting for the control-function, ^\
to be typed by the user.
If the control-function is typed, JDOS sets a flag that
tells it to become active as soon as possible. The system
clock provides an interrupt about 18 times every second.
When this interrupt is activated, JDOS checks to see if the
flag has been set, requesting that it become active. If the
flag has been set, JDOS checks to see if the interrupted
program lies above JDOS in memory and below the DOS BIOS
services. If this is true, JDOS does the following:
(1) Saves the current screen mode.
(2) Saves all the characters on the screen in a hidden
file called SCREEN.$$$.
(3) Saves the cursor type and position.
(4) Saves the contents of the interrupt table.
(5) Saves the state of four possible UARTs for communi-
cations adapters, COM1 through COM4, then disables
interrupt control on all of them.
(6) Masks off interrupts IRQ3 and IRQ4 that communica-
tions programs use.
(7) Sets the timer-tick interrupt that the interrupted
program might be using to a dummy routine.
(8) Sets the system-timer interrupt, that the inter-
rupted program might be (dishonorably) using back to
the correct vector.
(9) Saves the user's data-transfer area.
(10) Saves the default directory and disk.
(11) Saves the contents of memory in a hidden file
called VIRTUAL.MEM.
(12) Releases memory to load and execute the DOS
command processor.
(13) Loads the command processor.
(14) At this time, the user may execute DOS commands
- 2 -
and may also execute other programs. Since most of the
memory contents will have been saved in a file, the
user will have most of the system memory available for
application programs.
After the user types EXIT at the DOS command line, the
following things occur:
(15) The command-processor returns to JDOS.
(16) The default disk and directory are restored.
(17) The memory released is reacquired.
(18) The saved memory contents from the file are
written back to memory.
(19) The memory-file is deleted (VIRTUAL.MEM).
(20) The screen mode, cursor type, and position is
restored.
(21) The screen contents are restored from a file.
(22) The screen file is deleted (SCREEN.$$$).
(23) The data-transfer area is restored.
(24) The contents of the interrupt table is restored.
(25) The interrupt-controller mask is restored to
enable the interrupted program's interrupts.
(26) The state of the four possible UARTS for the
communications adapter ports COM1 through COM4 are
restored including any interrupt-enable bits.
(27) JDOS returns to the interrupted program.
If everything went according to plan, the user continues
with his work. JDOS may again be activated at any time.
Possible problems:
There are several things that could go wrong that would
prevent JDOS from performing correctly. Much care has been
taken to help prevent a system crash in the event that
everything didn't go according to plan. Usually, in the
event of an error, JDOS simply refuses to load the command
processor and returns to the interrupted task. There are a
few things you MUST NOT DO when operating in the JDOS
"window".
- 3 -
(1) Do NOT load a TSR program! JDOS needs the memory
that the TSR would use and has absolutely no way of
returning to the interrupted program if this memory
gets taken away by the TSR program.
(2) Do NOT run CHKDSK with the /F option! There may be
many open files who's buffers haven't been written to
disk when JDOS interrupts the task. CHKDSK will assume
these files are bad and truncate them to zero-length!
(3) Do NOT activate another TSR like Sidekick(tm) or
Superkey(tm) while inside the JDOS window! Usually you
can get away with this, but not always. You can improve
your chances by loading JDOS last.
(4) Do NOT run a program that alters your disk struc-
ture (like Peter Norton's SD)! This could cause the
same problems as DOS's CHKDSK.
(5) If operating from a floppy disk, do not remove the
default disk from the drive! If JDOS can't open the
virtual-memory file, it will abort so you can't get
back to the interrupted program.
(6) JDOS creates then deletes two files, VIRTUAL.MEM
and SCREEN.$$$. These files will reside in the top
directory of the default disk. They are normally hid-
den. Should you delete them while in the JDOS window,
you'll be up the creek without a paddle once you exit
the JDOS window.
If you follow these rules, JDOS should be a useful addition
to your utilities.
ERROR MESSAGES
Need DOS version 3.00 or higher to execute!
Some versions of DOS 2.XX do not always work. You really
need DOS 3.XX for all modern applications.
JDOS is already installed!
You tried to load JDOS again. It won't let you.
Can't load command processor <CR>
The program that was interrupted had acquired ALL of the
system memory and won't release any! Just hit the <CR> and
JDOS will return to the interrupted task.
If this message occurs immediately upon loading JDOS, it
- 4 -
means that the command interpreter, COMMAND.COM can't be
located because of a corrupt environment. Type SET at the
DOS prompt and verify that the "COMSPEC=" parameter points
to a valid filename. This should be the COMMAND.COM file
that DOS loaded at boot-time.
Can't create file \VIRTUAL.MEM
Not enough directory space in your top directory or not
enough file "handles" available. Put FILES=30 in your
CONFIG.SYS file then reboot.
Can't write file \VIRTUAL.MEM
You are out of disk space. JDOS needs about 700 kb. This
single file can be as large as 620 kb.
Can't close file \VIRTUAL.MEM
A disk allocation error prevents updating the directory.
Can't open file \VIRTUAL.MEM
File was not created because of a previous error.
Can't delete file \VIRTUAL.MEM
File was not created because of a previous error.
Can't read file \VIRTUAL.MEM
File was not closed properly because of a previous error.
Can't create file \SCREEN.$$$
Not enough directory space in your top directory or not
enough file "handles" available. Put FILES=30 in your
CONFIG.SYS file then reboot.
Can't write file \SCREEN.$$$
You are out of disk space. JDOS needs about 700 kb. This
file is 64 kb in size.
Can't close file \SCREEN.$$$
Disk allocation error prevents updating the directory.
Can't open file \SCREEN.$$$
File was not created because of a previous error.
Can't delete file \SCREEN.$$$
File was not created because of a previous error.
Can't read file \SCREEN.$$$
File was not closed properly because of a previous error.
If you want to laugh, please read the following message
stolen from a software instruction manual.
WARRANTY
- 5 -
This material, hereunder referred to as software, whether or
not in machine-readable form, or existing in the manner re-
ferred to as source-code, whether or not in a compiler-
usable form, or existing as a memory image either as object-
code or binary controls to microprocessor modalities and
instructions, has neither express nor implied warranties of
any kind including, but not limited to, merchantability,
fitness for any particular purpose, or non-infringement of
patents, copyrights or other proprietary rights of others,
or any liability or responsibility for damages of any kind,
including special, indirect or consequential damages,
arising out of or resulting from the use of same made
available hereunder, or the use or modification thereof, the
sole remedy of which is limited, at our option, to the
replacement of this notice should it become defective in
normal use for a period not to exceed an unspecified time.
Some countries, states and principalities do not allow
limited warranties so this notice may not apply to you.
In other words, "you usa da program, you taka you chances"!
The source-code is provided so that users may determine for
themselves if this program may serve a useful purpose. I
attempted to follow good standards of engineering practice
so you should not have too many problems.
Cheers,
Richard B. Johnson
- 6 -